<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        *{padding: 0;margin: 0;}
        .adver{
            width: 300px;
            height: 400px;
            background-color: aquamarine;
            position: fixed;
            right: 5px;
            bottom: 5px;
            display: none;
        }
    </style>
</head>
<body>
    <div class="adver">

    </div>
</body>
<script>
    /* 
        计时器 => 每间隔一段时间,执行既定的内容(回调函数)  
            特征: 只要不清除,计时器会一直执行

        setInterval(callback,time,arg1,arg2...argN)   设置/启动计时器
            callback  => 把函数作为参数传入到setInterval中, 让它在setInterval函数中没间隔指定时间执行 (期望执行的内容)  => (回调函数 => 函数可以是命名函数或匿名函数)
            time     => 间隔时间
            arg1,arg2...argN  => 如果传入的回调回调函数需要接受参数,从第三参数开始依次向后传
            返回值: 计时器的编号

        clearInterval(计时器的编号);  对应计时器编号清除计时器
            返回值:undefined 

        注意:
            (1) 计时器启动后,会在页面加载完毕之后开始计时, 之后每间隔指定之间之后开始执行传入的回调函数
            (2) setInterval()启动计时器之后返回计时器的编号(唯一), 后期可以对应计时器编号清除计时器 
            (3) 已经被清除的计时器无法重新启动, 但是可以开启一个新的 => 新的计时器编号
            (4) 再函数封装,事件中启动计时器, 一般情况下,需要保证同时启动一个 ( 先清除上一个 再启动下一个),否则同时启动多个,会无法清除
    
    */
    /* 
        延时器:  延迟一段时间执行既定的内容(回调函数)
            特征: 默认执行一次就清除了

        setTimeout(callback,delayTime,arg1,arg2...argN)   设置/启动 延时器
            callback  延迟一段时间执行的内容(回调函数)
            delayTime  延迟时间(单位:ms)
            arg1,arg2...argN  => 如果传入的回调回调函数需要接受参数,从第三参数开始依次向后传

        返回值: 延时器的编号

        clearTimeout(延时器的编号)  清除延时器
    
    */

    // var timer = setTimeout(function(){
    //     console.log(2222);
    // },1000);
    // console.log("延时器的编号",timer);

    var adver = document.getElementsByClassName("adver")[0];
 
    var timer = setTimeout(function(){
        console.log(2222);
        adver.style.display = "block";
    },5000);
    console.log("延时器的编号",timer);

 





</script>
</html>